package com.raidpoints.client;

import java.util.ArrayList;
import java.util.HashMap;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.raidpoints.client.LootEditor.lootitem;

public interface RaidPointsServiceAsync {
	void AuthUser(String user, String pass, AsyncCallback<String> callback);
	void GetSessionPerm(AsyncCallback<String> callback);
	void GetDest(AsyncCallback<String> callback);
	void GetEventList(AsyncCallback<ArrayList<event>> callback);
	void AddEvent(event evt, int reoc, AsyncCallback<ArrayList<event>> callback);
	void GetCharacters(event evt, AsyncCallback<ArrayList<character>> callback);
	void GetLoot(event evt, AsyncCallback<ArrayList<pointsevent>> callback);
	void Logout(AsyncCallback<String> callback);
	void GetBosses(event evt, AsyncCallback<HashMap<String,ArrayList<String[]>>> callback);
	void AddCharsToEvent(event evt, String charlist, AsyncCallback<ArrayList<character>> callback);
	void RemoveCharsFromEvent(event evt, ArrayList<character> charlist, AsyncCallback<ArrayList<character>> callback);
	void UpdateLoot(event evt, ArrayList<pointsevent> pointslist, AsyncCallback<ArrayList<pointsevent>> callback);
	void GetAllChars(AsyncCallback<ArrayList<character>> callback);
	void GetCharHistory(int cid, String pool, AsyncCallback<ArrayList<pointsevent>> callback);
	void GetEvent(int eid, AsyncCallback<event> callback);
	void RecalcPointsA(int cid, int pid, String pool, AsyncCallback<ArrayList<pointsevent>> callback);
	void AddUser(String user, String pass, AsyncCallback<String> callback);
	void GetAccountChars(int cid, AsyncCallback<ArrayList<character>> callback);
	void GetAccountEvents(int cid, AsyncCallback<ArrayList<event>> callback);
	void ChangeAccountChar(character mc, AsyncCallback<String> callback);
	void GetAddInfo(AsyncCallback<ArrayList<gameinfo>> callback);
	void RemoveAccountChar(character mc, AsyncCallback<String> callback);
	void GetEligableCharacters(event evt, AsyncCallback<ArrayList<character>> callback);
	void CharacterSignup(event evt, ArrayList<character> mc, String note, AsyncCallback<String> callback);
	void CharacterSignupMulti(ArrayList<event> evt, ArrayList<character> mc, String note, AsyncCallback<String> callback);
	void GetSlotList(event evt, AsyncCallback<ArrayList<character>> callback);
	void SendSlotList(event evt, ArrayList<character> charlist, boolean publish, AsyncCallback<String> callback);
	void GetRoles(event evt, AsyncCallback<String> callback);
	void ModifySignup(event evt, AsyncCallback<String> callback);
	void GetTimeOffset(int hour, int day, AsyncCallback<Integer> callback);
	void UpdateAccountInfo(character mc, AsyncCallback<String> callback);
	void GetNotInfo(AsyncCallback<String> callback);
	void SetNotInfo(String info, AsyncCallback<String> callback);
	void UpdateEvent(event evt, boolean cancel, AsyncCallback<event> callback);
	void ContactAdmin(String message, AsyncCallback<String> callback);
	void ChangePass(String pass, AsyncCallback<String> callback);
	void DoStuff(String stuff, AsyncCallback<String> callback);
	void AccountName(int cid, AsyncCallback<String> callback);
	void GetPools(int gid, int cid, AsyncCallback<ArrayList<String>> callback);
	void CharterPerm(event evt, AsyncCallback<Boolean> callback);
	void GetCharters(AsyncCallback<HashMap<String,ArrayList<NewEventBox.pointspool>>> callback);
	void GetCharacter(int cid, AsyncCallback<character> callback);
	void GetAlts(int cid, event eid, AsyncCallback<ArrayList<String>> callback);
	void SearchChars(String search, event eid, AsyncCallback<ArrayList<String>> callback);
	void GetRegulars(event evt, AsyncCallback<ArrayList<String>> callback);
	void SendChatMessage(String message, String mychar, event evt, AsyncCallback<String> callback);
	void GetChatMessages(event evt, AsyncCallback<ArrayList<String>> callback);
	void PollChat(int pointer, AsyncCallback<ArrayList<String>> callback);
	void PollChatW(int pointer, AsyncCallback<ArrayList<String>> callback);
	void SetCalHeight(int ch, AsyncCallback<String> callback);
	void SetMilTime(int mt, AsyncCallback<String> callback);
	void SplitRaid(event evt, AsyncCallback<String> callback);
	void GetFullChar(int cid, AsyncCallback<character> callback);
	void GetGroupDesc(int gid, AsyncCallback<String> callback);
	void SaveGroupDesc(String desc, int gid, AsyncCallback<String> callback);
	void GetGroups(AsyncCallback<ArrayList<String>> callback);
	void GetAccountPerm(int cid, AsyncCallback<ArrayList<String>> callback);
	void SendAccountPerm(int cid, String perm, AsyncCallback<String> callback);
	void GetGames(AsyncCallback<ArrayList<gameinfo>> callback);
	void SetTab(String tabs, AsyncCallback<String> callback);
	void GetTabInfo(AsyncCallback<ArrayList<String>> callback);
	void GetEditablePools(AsyncCallback<ArrayList<String>> callback);
	void GetPoolRuleset(String poolname, AsyncCallback<String> callback);
	void SavePoolRuleset(String poolname, String ruleset, AsyncCallback<String> callback);
	void GetAllDest(AsyncCallback<ArrayList<String>> callback);
	void GetEncounters(int destid, AsyncCallback<ArrayList<String>> callback);
	void GetEditableLoot(int encounterid, AsyncCallback<ArrayList<lootitem>> callback);
	void EditLoot(ArrayList<lootitem> ll,AsyncCallback<ArrayList<lootitem>> callback);
	void AddEncounter(int destid, String bossname, AsyncCallback<String> callback);
	void AddDestination(int gameid, String destname,AsyncCallback<String> callback);
	void ImportLoot(int destid, String loot, AsyncCallback<String> callback);
	void AdditionalCharInfo(int cid, AsyncCallback<String> callback);
	void AddHelpView(AsyncCallback<String> callback);
	void GetAllPools(int gid, boolean group, AsyncCallback<ArrayList<String>> callback);
	void AddNewPool(int gameid, String poolname, boolean hasruleset,AsyncCallback<Integer> callback);
	void SetGroupPools(int gid, ArrayList<Integer> pools, AsyncCallback<String> callback);
	void SetDestPools(int did, ArrayList<Integer> pools,AsyncCallback<String> callback);
}
